package com.xnyzc.lhy.resource.feign.worksheet;

import com.xnyzc.lhy.common.entity.DiDiRv;
import com.xnyzc.lhy.common.entity.WorksheetRv;
import com.xnyzc.lhy.order.entity.param.synchronization.ChangePriceParam;
import com.xnyzc.lhy.resource.entity.worksheet.param.*;
import com.xnyzc.lhy.resource.entity.worksheet.param.heli.FromHeliWorksheetParam;
import com.xnyzc.lhy.resource.feign.fallback.worksheet.WorksheetServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <p>
 * 工单信息表 服务类
 * </p>
 *
 * @author haoyfa
 * @since 2019-11-07
 */
@FeignClient(name = "${feign.applicationName.mis}", fallback = WorksheetServiceFallback.class)
public interface IFWorksheetService {
    /**
     * 取消订单
     *
     * @param worksheetCancelOrderParam
     * @return
     */
    @PostMapping("/worksheet/order/cancelOrder")
    WorksheetRv cancelOrder(WorksheetCancelOrderParam worksheetCancelOrderParam);

    /**
     * 关闭订单
     *
     * @param worksheetCloseOrderParam
     * @return
     */
    @PostMapping("/worksheet/order/getCloseOrder")
    DiDiRv getCloseOrder(@RequestBody WorksheetCloseOrderParam worksheetCloseOrderParam);

    /**
     * 订单改价接口
     *
     * @param priceParam
     * @return
     */
    @PostMapping("/worksheet/order/getChangePrice")
    DiDiRv getChangePrice(@RequestBody ChangePriceParam priceParam);

    /**
     * 退款接口
     *
     * @param priceParam
     * @return
     */
    @PostMapping("/worksheet/order/getBillRefund")
    DiDiRv getBillRefund(@RequestBody WorksheetGetBillRefundParam priceParam);

    /**
     * 免单接口
     *
     * @param worksheetFreeChargeParam
     * @return
     */
    @PostMapping("/worksheet/order/getFreeCharge")
    DiDiRv getFreeCharge(@RequestBody WorksheetFreeChargeParam worksheetFreeChargeParam);

    /**
     * 工单状态同步第三方（滴滴）接口
     *
     * @param worksheetUpdateWorksheetParam
     * @return
     */
    @PostMapping("/worksheet/updateWorksheet")
    WorksheetRv updateWorksheet(WorksheetUpdateWorksheetParam worksheetUpdateWorksheetParam);

    /**
     * 查询订单详情接口
     *
     * @param worksheetGetOrderPersonalDetailParam
     * @return
     */
    @PostMapping("/worksheet/order/getOrderPersonalDetail")
    WorksheetRv getOrderPersonalDetail(WorksheetGetOrderPersonalDetailParam worksheetGetOrderPersonalDetailParam);

    /**
     * 查询订单列表接口
     *
     * @param worksheetgetOrderPersonalListParam
     * @return
     */
    @PostMapping("/worksheet/order/getOrderPersonalList")
    WorksheetRv getOrderPersonalList(WorksheetgetOrderPersonalListParam worksheetgetOrderPersonalListParam);

    /**
     * 客服标记司机违规
     *
     * @param worksheetetDriverPenaltyDetailParam
     * @return
     */
    @PostMapping("/worksheet/driver/setDriverPenaltyDetail")
    WorksheetRv setDriverPenaltyDetail(WorksheetetDriverPenaltyDetailParam worksheetetDriverPenaltyDetailParam);

    /**
     * 司机信息接口
     *
     * @param worksheetetGetDriverDetailParam
     * @return
     */
    @PostMapping("/worksheet/driver/getDriverDetail")
    WorksheetRv getDriverDetail(WorksheetetGetDriverDetailParam worksheetetGetDriverDetailParam);

    /**
     * 创建工单
     *
     * @param fromHeliWorksheetParam
     * @return
     */
    @PostMapping("/worksheet/createWorksheet")
    WorksheetRv createWorksheet(FromHeliWorksheetParam fromHeliWorksheetParam);

    /**
     * 获取订单状态
     * @param worksheetGetOrderPersonalStatusParam
     * @return
     */
    @PostMapping("/worksheet/order/getOrderPersonalStatus")
    WorksheetRv getOrderPersonalStatus(WorksheetGetOrderPersonalStatusParam worksheetGetOrderPersonalStatusParam);
}
